package com.saibowisdom.storage.aspirator.common;


import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Locale;

/**
 * 功 能:
 * 创建人: LDL
 * 时 间:  2015/12/16 13:44
 */
public class DateFormats {

    /**
     * 英文日期
     */
    private ArrayList<SimpleDateFormat> dateTimeDateFormatsEN;

    public ArrayList<SimpleDateFormat> getDateTimeDateFormatsCH() {
        return dateTimeDateFormatsCH;
    }

    public ArrayList<SimpleDateFormat> getDateTimeDateFormatsEN() {
        return dateTimeDateFormatsEN;
    }

    /**
     * 中文日期
     */
    private ArrayList<SimpleDateFormat> dateTimeDateFormatsCH;

    public DateFormats() {
        dateTimeDateFormatsEN = new ArrayList<>();
        dateTimeDateFormatsCH = new ArrayList<>();
        //Dec. 15, 2015 15:47  December 16, 2015 Dec 15, 2015 15:47
        final SimpleDateFormat sdf0 = new SimpleDateFormat("MMM d,yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf1 = new SimpleDateFormat("MMM d,yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf2 = new SimpleDateFormat("MMM d,yyyy HH:mm:ss", Locale.ENGLISH);
        /*final SimpleDateFormat sdf12 = new SimpleDateFormat("MMM d,yyyy K:m a", Locale.ENGLISH);
        final SimpleDateFormat sdf13 = new SimpleDateFormat("MMM d,yyyy K:m:s a", Locale.ENGLISH);*/

        //16 December 2015   16 Dec 2015    16 Dec. 2015
        final SimpleDateFormat sdf3 = new SimpleDateFormat("d MMM, yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf4 = new SimpleDateFormat("d MMM, yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf5 = new SimpleDateFormat("d MMM, yyyy HH:mm:ss", Locale.ENGLISH);

        //16 December 2015   16 Dec 2015    16 Dec. 2015
        final SimpleDateFormat sdf28 = new SimpleDateFormat("d MMM yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf29 = new SimpleDateFormat("d MMM yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf30 = new SimpleDateFormat("d MMM yyyy HH:mm:ss", Locale.ENGLISH);

        //Tuesday|Tue 15 December|Dec 2015
        final SimpleDateFormat sdf6 = new SimpleDateFormat("EEE d MMM yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf7 = new SimpleDateFormat("EEE d MMM yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf8 = new SimpleDateFormat("EEE d MMM yyyy HH:mm:ss", Locale.ENGLISH);

        //Dec. 15, 2015 15:47  December 16, 2015 Dec 15, 2015 15:47
        final SimpleDateFormat sdf9 = new SimpleDateFormat("MMM. d,yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf10 = new SimpleDateFormat("MMM. d,yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf11 = new SimpleDateFormat("MMM. d,yyyy HH:mm:ss", Locale.ENGLISH);
        //April 18, 2016 6:15 PM
        final SimpleDateFormat sdf14 = new SimpleDateFormat("MMM. d yyyy K:m a", Locale.ENGLISH);
        final SimpleDateFormat sdf15 = new SimpleDateFormat("MMM. d yyyy K:m:s a", Locale.ENGLISH);

        //16 December 2015   16 Dec 2015    16 Dec. 2015
        final SimpleDateFormat sdf16 = new SimpleDateFormat("d MMM., yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf17 = new SimpleDateFormat("d MMM., yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf18 = new SimpleDateFormat("d MMM., yyyy HH:mm:ss", Locale.ENGLISH);

        final SimpleDateFormat sdf31 = new SimpleDateFormat("d MMM. yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf32 = new SimpleDateFormat("d MMM. yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf33 = new SimpleDateFormat("d MMM. yyyy HH:mm:ss", Locale.ENGLISH);

        //Tuesday|Tue 15 December|Dec 2015
        final SimpleDateFormat sdf19 = new SimpleDateFormat("EEE d MMM. yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf20 = new SimpleDateFormat("EEE d MMM. yyyy HH:mm", Locale.ENGLISH);
        final SimpleDateFormat sdf21 = new SimpleDateFormat("EEE d MMM. yyyy HH:mm:ss", Locale.ENGLISH);


        //11:24 AM - 16 Dec 2015
        final SimpleDateFormat sdf22 = new SimpleDateFormat("K:m a - d MMM yyyy", Locale.ENGLISH);
        final SimpleDateFormat sdf23 = new SimpleDateFormat("K:m:s a - d MMM yyyy", Locale.ENGLISH);

        //2015-12-16T03:23:17.523Z
        final SimpleDateFormat sdf24 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.ENGLISH);

        //2015-12-15T20:38:45+0000
        final SimpleDateFormat sdf25 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        final SimpleDateFormat sdf26 = new SimpleDateFormat("yyyy.MM.dd K:m a");
        final SimpleDateFormat sdf27 = new SimpleDateFormat("yyyy.MM.dd K:m:s a");

        final SimpleDateFormat dateFormat28 = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
        final SimpleDateFormat dateFormat29 = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
        /*dateTimeDateFormatsEN.add(sdf13);
        dateTimeDateFormatsEN.add(sdf12);*/
        dateTimeDateFormatsEN.add(sdf2);
        dateTimeDateFormatsEN.add(sdf1);
        dateTimeDateFormatsEN.add(sdf0);


        dateTimeDateFormatsEN.add(sdf15);
        dateTimeDateFormatsEN.add(sdf14);
        dateTimeDateFormatsEN.add(sdf11);
        dateTimeDateFormatsEN.add(sdf10);
        dateTimeDateFormatsEN.add(sdf9);

        dateTimeDateFormatsEN.add(sdf5);
        dateTimeDateFormatsEN.add(sdf4);
        dateTimeDateFormatsEN.add(sdf3);

        dateTimeDateFormatsEN.add(sdf18);
        dateTimeDateFormatsEN.add(sdf17);
        dateTimeDateFormatsEN.add(sdf16);

        dateTimeDateFormatsEN.add(sdf30);
        dateTimeDateFormatsEN.add(sdf29);
        dateTimeDateFormatsEN.add(sdf28);

        dateTimeDateFormatsEN.add(sdf33);
        dateTimeDateFormatsEN.add(sdf32);
        dateTimeDateFormatsEN.add(sdf31);

        dateTimeDateFormatsEN.add(sdf8);
        dateTimeDateFormatsEN.add(sdf7);
        dateTimeDateFormatsEN.add(sdf6);

        dateTimeDateFormatsEN.add(sdf21);
        dateTimeDateFormatsEN.add(sdf20);
        dateTimeDateFormatsEN.add(sdf19);

        dateTimeDateFormatsEN.add(sdf23);
        dateTimeDateFormatsEN.add(sdf22);

        dateTimeDateFormatsEN.add(sdf27);
        dateTimeDateFormatsEN.add(sdf26);

        dateTimeDateFormatsEN.add(sdf24);

        dateTimeDateFormatsEN.add(sdf25);

        dateTimeDateFormatsEN.add(dateFormat29);
        dateTimeDateFormatsEN.add(dateFormat28);

        final SimpleDateFormat dateFormat0 = new SimpleDateFormat("yyyy-MM-dd");
        final SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        final SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        final SimpleDateFormat dateFormat3 = new SimpleDateFormat("yyyy/MM/dd");
        final SimpleDateFormat dateFormat4 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        final SimpleDateFormat dateFormat5 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

        final SimpleDateFormat dateFormat7 = new SimpleDateFormat("yyyy年MM月dd日", Locale.CHINESE);
        final SimpleDateFormat dateFormat8 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm", Locale.CHINESE);
        final SimpleDateFormat dateFormat9 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss", Locale.CHINESE);

        final SimpleDateFormat dateFormat10 = new SimpleDateFormat("yyyy年MM月dd日 HH时", Locale.CHINESE);
        final SimpleDateFormat dateFormat11 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分", Locale.CHINESE);
        final SimpleDateFormat dateFormat12 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒", Locale.CHINESE);


        dateTimeDateFormatsCH.add(dateFormat2);
        dateTimeDateFormatsCH.add(dateFormat1);
        dateTimeDateFormatsCH.add(dateFormat0);

        dateTimeDateFormatsCH.add(dateFormat5);
        dateTimeDateFormatsCH.add(dateFormat4);
        dateTimeDateFormatsCH.add(dateFormat3);

        dateTimeDateFormatsCH.add(dateFormat9);
        dateTimeDateFormatsCH.add(dateFormat8);
        dateTimeDateFormatsCH.add(dateFormat12);
        dateTimeDateFormatsCH.add(dateFormat11);
        dateTimeDateFormatsCH.add(dateFormat10);
        dateTimeDateFormatsCH.add(dateFormat7);
    }
}
